/* newsfind.h */

#ifndef __newsfind_h
#define __newsfind_h

#define NewsFindDir "<NewsFind$Dir>"

typedef enum {
  FB_Subject, FB_From, FB_Date, FB_MessageId, FB_References,
  FB_WholeArticle = 0x100, FB_BodyOnly, FB_AllHeaders
} FB_WhichHeader;

typedef struct {
  enum { NotReady, Idle, Busy } status;
  char expression[256];
  enum { FB_SearchHeader = 2, FB_SearchBody,
  	FB_SearchBodyOnly = 0x12, FB_SearchAllHeaders } scope;
  	/* Corresponding to gadgets */
  FB_WhichHeader header;
  char *group;
  const char *ctrl_group;
  unsigned messages;
  unsigned message;
  int found;
  char *overview;
  int overview_ix;
  int overview_size;
  int casesensve;
  int strict;
  char *article;
  int article_no;
  int article_ix;
  int article_size;
  int reverse;
  int del;
} NewsFindInfo;

extern NewsFindInfo newsfind_info;

extern void newsfind_initialise(const char *init_file);
/* init_file = NULL for default choices, non-transient */

extern void newsfind_reset(void);

#endif
